package com.cy.pj.sys.dao;

import com.cy.pj.common.pojo.Node;
import com.cy.pj.sys.pojo.SysMenu;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Select;
import org.springframework.data.relational.core.sql.In;

import java.util.List;
import java.util.Set;

@Mapper
public interface SysMenuDao {
    /**
     * 查询所有的菜单信息。包含菜单对应的上级菜单信息
     * @return 查询到的菜单列表信息
     */
    List<SysMenu> selectMenus();

    /**
     * 查询菜单树节点信息(菜单id，菜单名称，菜单上级)
     * @return
     */
    @Select("select id,name,parentId from sys_menus")
    List<Node>selectMenuTreeNodes();

    /**
     * 新增菜单信息
     * @param menu 封装对象
     * @return 新增行数
     * 对象此过程为持久化，将内存中的对象保存到数据库进行持久存储
     * ORM：对象关系映射
     */
    int insertMenu(SysMenu menu);

    SysMenu selectById(Integer id);

    int updateMenu(SysMenu menu);

    Set<String> selectUserPermissions(Integer id);


}
